For example, in accordance with an international standard video encoding method, such as MPEG (Moving Picture Experts Group) or “ITU-T H.26x”, an inputted video frame is divided into rectangular blocks (coding blocks), a prediction process using an already-encoded image signal is carried out on each coding block to generate a prediction image, and orthogonal transformation and a quantization process are carried out on a prediction error signal which is the difference between the coding block and the prediction image in units of a block in order to compress the information about the inputted video frame.
For example, in the case of AVC/H.264 (ISO/IEC 14496-10|ITU-T H.264) which is an international standard method, an intra prediction process from already-encoded adjacent pixels or a motion-compensated prediction process between adjacent frames is carried out (refer to nonpatent reference 1). In the case of MPEG-4 AVC/H.264, one prediction mode can be selected from among a plurality of prediction modes for each block in an intra prediction mode of luminance. FIG. 14 is an explanatory drawing showing intra prediction modes in the case of a 4×4 pixel block size for luminance. In FIG. 14, each white circle in a block shows a pixel to be encoded, and each black circle shows an already-encoded pixel that is used for prediction. In the case of a 4×4 pixel block size for luminance, nine intra prediction modes including a mode 0 to a mode 8 are defined.
In the example shown in FIG. 14, the mode 2 is the one in which an average prediction is carried out in such away that each pixel in the block is predicted by using the average of adjacent pixels located on the upper and left sides of the block. The modes other than the mode 2 are intra prediction modes in each of which a directional prediction is carried out. The mode 0 is the one in which a vertical prediction is carried out in such a way that adjacent pixels located on the upper side of the block are repeatedly replicated to create plural rows of pixels along a vertical direction to generate a prediction image. For example, the mode 0 is selected when the coding block is a vertically striped pattern. The mode 1 is the one in which a horizontal prediction is carried out in such a way that adjacent pixels located on the left side of the block are repeatedly replicated to create plural columns of pixels along a horizontal direction to generate a prediction image. For example, the mode 1 is selected when the coding block is a horizontally striped pattern. In each of the modes 3 to 8, interpolation pixels running in a predetermined direction (i.e., a direction shown by arrows) are generated by using the already-encoded pixels located on the upper or left side of the block to generate a prediction image.
In this case, the block size for luminance to which an intra prediction is applied can be selected from 4×4 pixels, 8×8 pixels, and 16×16 pixels. In the case of 8×8 pixels, nine intra prediction modes are defined, like in the case of 4×4 pixels. However, already-encoded pixels themselves are not used as pixels which are used for prediction, but the already-encoded pixels on which a filtering process has been carried out are used as the pixels which are used for prediction. In contrast with this, in the case of 16×16 pixels, four intra prediction modes which are called Plane predictions are defined in addition to intra prediction modes associated with an average prediction, a vertical prediction, and a horizontal prediction. In each of the intra prediction modes associated with Plane predictions, the value of a pixel which is generated through interpolation in a diagonal direction on the already-encoded adjacent pixels located on the upper and left sides of the block is set as a predicted value.
Because a directional prediction mode is the one in which a predicted value is generated by repeatedly replicating either the pixels adjacent to the block or the interpolation pixels generated from the adjacent pixels in a predetermined direction (prediction direction), the prediction efficiency increases and the code amount can be reduced when the direction of a boundary (edge) of an object in the target block to be predicted as shown in FIG. 15 matches the prediction direction, and the signal value in the block is kept constant along the prediction direction.